package com.demo;

import org.junit.jupiter.api.Test;

public class FunctionalInterfaceDemo {


  @Test
  public void testOne() {
    //定义一个接口实现类（采用匿名内部类的形式）
    Function function = new Function() {
      @Override
      public void print() {
        System.out.println("hello");
      }
    };
    //调用该方法
    function.print();
  }

  @Test
  public void testTwo() {
    //java8的lambda形式
    Function function = () -> System.out.println("hello");
    //调用该方法
    function.print();
  }
}

//定义该接口表示该接口只能有一个接口方法，要不然会报错
@FunctionalInterface
interface Function {

  void print();

  //注释掉，要不然会报错
//  void call();
  //这里是java8支持的默认实现方法
  default void call() {
  }

  //java的接口静态方法
  static void call1() {
  }
}
